A common way to test a graphical user interface (“GUI”) is with an automated user interface (“UI”) test. A UI test simulates a user's actions, typically by launching a browser, navigating to the application-under-test (“AUT”), and executing simulated user interactions (for example, clicking on a link, entering text in a field, etc.). Developers or testers may create several UI tests that together make up a suite of UI tests to exercise a range of functionality for an AUT. For example, there may be a selection menu as shown in FIG. 1b in an application. The selection menu may allow the user choose a location by clicking on a dropdown menu and making a selection from a list. In order to test this selection menu functionality, there may be a test that simulates the user clicking on the dropdown and choosing an option.
However, in customary testing suites it is difficult to determine if the tests sufficiently exercise all functionality of an AUT. For example, a user interface may have five clickable links and three text fields. In order to fully test the functionality of the user interface, all or some combination of these links and fields need to be tested. Although there is plenty debate in the industry on the subject of UI testing and whether it is sufficient to click on everything that can be clicked or whether it is necessary to test all possible combinations of text in a text field, there is little consensus on the totality of tests that are required to properly test all UI functionality.
As recognized by the inventor, there should be an objective and quantitative solution for testing UI functionality.